home *** CD-ROM | disk | FTP | other *** search
/ PC Answers 1995 May / PC Answers CD-ROM 7 (Future Publishing) (May 1995).iso / vbits / demos / qbs / winsoft / vb_lm / vblm_bro.txt < prev    next >
Encoding:
Text File  |  1994-09-28  |  14.2 KB  |  343 lines

  1. VB Language Manager
  2. Easy and Efficient Multi-Language Support for Visual Basic
  3. Applications
  4.  
  5.  
  6. Rx for Localization Headaches!
  7.  
  8. Have you ever tried to make a Visual Basic application speak more
  9. than one national language?  If so, you've discovered the
  10. headache of multiple language support in VB.  Strings are
  11. scattered all over the place in old apps, and even if strings are
  12. in a centralized resource, you still contend with inaccessible
  13. string properties in form definitions.  You can do it, of course,
  14. if you're willing to spend hours duplicating files and writing
  15. tedious, repetitive code.  When you're done, though, the headache
  16. lives on in performance and maintenance problems.  Shouldn't
  17. there be a better way?
  18.  
  19. There is!  VB Language Manager manages the process from start to
  20. finish to make localizing any VB app, old or new, as simple as
  21. 1-2-3.  With VB Language Manager, you maintain a single copy of
  22. source code yet compile in as many languages as you wish.  The
  23. Professional Edition of VBLM can even create multi-lingual
  24. executables that run   efficiently   in whatever language the
  25. user selects!
  26.  
  27. VB Language Manager makes localization easier and more efficient
  28. for all parties involved.  How?  By letting each concentrate on
  29. what he or she does best, by eliminating drudgery, and by
  30. simplifying logistics.  With a few clicks, the developer can
  31. create a VBLM project file containing every string in a VB
  32. project that needs translation, then ship it off to the
  33. translator.  The translator   across the room or across the globe
  34.   can fire up VBLM, load the project, enter the translations, and
  35. ship it back.  A few more clicks and the application is up and
  36. running in a new language.
  37.  
  38. VBLM computerizes the entire localization process, while source
  39. code never leaves the building.  And of course, translators don't
  40. have to use the software: you can exchange VBLM worksheets
  41. instead of files, and still dramatically improve current
  42. practice.
  43.  
  44.  
  45. How VB Language Manager Works
  46.  
  47. VB Language Manager is a sophisticated tool, but it works in
  48. three easy steps.  First, VBLM examines a VB project, finds the
  49. strings in both form definitions and code, and copies them into a
  50. VBLM project file.  Next, you use the Language Table Editor to
  51. create language tables and enter translations.  Finally, VBLM
  52. builds a localized version of the project using the language
  53. table of your choice, and instructs VB to compile it.  That's all
  54. there is to it.
  55.  
  56. While simple in overview, though, VBLM's sophistication shows up
  57. in the details.  Let's look at them, step by step.
  58.  
  59.  
  60. STEP 1: STRING EXTRACTION
  61.  
  62. When VBLM extracts strings from a VB project, it does not blindly
  63. copy everything between double quotes; instead, it consults
  64. customizable lists of strings and properties to ignore.  You can
  65. configure VBLM to ignore strings used as Format() and SendKeys
  66. arguments, for example, and those composed only of numbers and/or
  67. punctuation.
  68.  
  69. The ignored properties list is especially powerful, as VBLM does
  70. not extract any string directly assigned to a listed property,
  71. whether assigned in a form definition or in code.  This allows
  72. you to systematically ignore properties that do not require
  73. translation, e.g. "LinkTopic" and "Path."  Configure the list to
  74. your particular needs; for example, list "FontName" when
  75. translating into languages that share the design language
  76. character set, but don't list it if you need a new character set
  77. so you can later define appropriate fonts (VBLM fully supports
  78. translation across character sets).
  79.  
  80. What if VBLM does extract a string that you don't want
  81. translated?  Just leave it untranslated, and it will be ignored
  82. as well.
  83.  
  84. Other intelligent string extraction features include:
  85.  
  86.    Single Instancing: However many times a given string occurs
  87.    in a project, it is extracted once and you translate it once.
  88.  
  89.    Automatic Format Conversion: VBLM needs ASCII format VB files
  90.    to do its work; if you use binary format, VBLM starts up VB
  91.    and makes the copies it needs, without touching the
  92.    originals.
  93.  
  94.    Automatic Updates: When VBLM loads a VBLM project, it
  95.    compares dates with the parent VB project, advises you if the
  96.    parent has changed, and if so, reexamines the parent and
  97.    updates the VBLM project as necessary, with no data loss.
  98.  
  99. STEP 2: THE LANGUAGE TABLE EDITOR
  100.  
  101. Because string extraction and build take seconds, VBLM users
  102. spend most of their time entering translations in the Language
  103. Table Editor (LTE).  So we designed the LTE for ease and speed,
  104. and made it almost completely customizable to user needs and
  105. preferences.  Like VBLM itself, the LTE is sophisticated yet
  106. simple to operate.
  107.  
  108. As pictured, the LTE displays a table of "language objects," each
  109. with a name, value, and translation.  The name identifies the
  110. object; the first object pictured, for example, is the second
  111. string in the AboutBox OKButton Click event procedure.  The value
  112. is the string itself, and the translation is whatever the user
  113. types in (the translations shown were actually entered
  114. automatically by a translation program, but more on that later).
  115. Using the LTE is as simple as scrolling the table and typing
  116. away.  But despite the operational simplicity, LTE features
  117. include:
  118.  
  119.    Independent Value and Translation Fonts: To accommodate
  120.    translation across character sets, the font used for
  121.    translation input and display is set independently from the
  122.    font used to display original strings.
  123.  
  124.    Context Information:  If the VB project is present on the
  125.    host PC, the LTE can assist translation by displaying the
  126.    line of source code in which the currently selected string is
  127.    actually used (the VB project must be present because a VBLM
  128.    project contains pointers to code but not the code itself).
  129.  
  130.    Advanced Search and Sort: You can search language tables by
  131.    name, value, translation and even code context.  You can nest
  132.    sort them on up to three keys, and use either ANSI or
  133.    Windows' language-dependent precedence.
  134.  
  135.    WYSIWYG and NON-WYSIWYG:  You can print language tables that
  136.    appear exactly as they appear on the screen.  You can also
  137.    format hardcopy independently, to accommodate the different
  138.    needs of working on-screen and on-paper.
  139.  
  140.    Export & Import: The LTE can export and import original and
  141.    translated strings to and from ASCII text files, allowing you
  142.    to build project-independent dictionaries.
  143.  
  144.    And more!
  145.  
  146.  
  147. STEP 3: NEW LANGUAGE BUILD
  148.  
  149. There's not much to say about the build step, because it's as
  150. simple as selecting a language table and a target directory and
  151. clicking OK.  VBLM then reads your source files and rewrites them
  152. in the target directory, swapping translations for original
  153. strings in both code and form definitions.  When done, it can
  154. start VB, load the new code and compile your localized version.
  155. You're done!
  156.  
  157.  
  158. The Professional Edition
  159.  
  160. Many developers will benefit from the additional capabilities of
  161. the powerful Professional Edition of VB Language Manager.  VBLM
  162. Pro can:
  163.  
  164.    Interface automatically with some 3rd party translation
  165.    programs, and with a little help from you and your text
  166.    editor, export to and import from all such programs.
  167.  
  168.    Width-check language tables to detect and report appearance
  169.    and functionality problems caused by variations in string
  170.    width across languages and fonts.
  171.  
  172.    Build multi-lingual versions of your VB applications that
  173.    query the user at start up and run in their choice of
  174.    language.
  175.  
  176. WORKING WITH THIRD PARTY PROGRAMS
  177.  
  178. There is a growing number of translation programs on the market,
  179. and VBLM Pro can cooperate with all of them.
  180.  
  181. If a program can be commanded to translate the clipboard (such as
  182. the AssistantTM Series from MicroTac), you can teach VBLM Pro to
  183. control it directly.  Once taught, VBLM Pro can automatically
  184. translate entire language tables with a single command.  It's
  185. even smart enough to remove embedded ampersands before passing
  186. strings for translation.
  187.  
  188. If a program can't translate the clipboard, you can use
  189. VBLM Pro's enhanced exporting to create translatable document
  190. versions of language tables.  After translation and minor cutting
  191. and pasting with a text editor, VBLM Pro can import the
  192. translations.
  193.  
  194. WIDTH CHECKING
  195.  
  196. Languages vary dramatically in the character count required to
  197. communicate a given word, phrase, or sentence.  English is
  198. relatively concise, so translated English text is usually longer
  199. (the Win SDK estimates the increase at up to 200%).  When you
  200. localize an application, therefore, you need to identify any
  201. translated strings that overflow their containers and become
  202. illegible.
  203.  
  204. The task is complex because character count is a lousy predictor
  205. of the width of a string displayed in a proportional font;
  206. length changes overestimate width changes in some languages,
  207. underestimate it in others.  The only accurate way to detect
  208. problems is either a time-consuming visual inspection, or API
  209. calls to actually measure string width in the display font and
  210. compare it to container width.
  211.  
  212. If the VB project is present on the host PC, you can click
  213. VBLM Pro's Width Check button and it will perform this analysis
  214. on an entire language table.  The resulting report details width
  215. increases, overflows, possible overflows, and crowding, and can
  216. be viewed or printed in summary or detail.
  217.  
  218. MULTI-LINGUAL APPLICATIONS
  219.  
  220. VBLM Pro's most sophisticated feature is its ability to build
  221. runtime-switchable multi-lingual versions of your VB
  222. applications.  These versions, RTSMLV's for short, learn from the
  223. command line or query the user for a language choice, then run in
  224. the language selected.  And although creating a high-performance
  225. RTSMLV is a fairly daunting technical task, VBLM Pro makes it as
  226. simple as checking a box and selecting more than one language
  227. table at build time.
  228.  
  229. Exactly how does VBLM Pro create an RTSMLV?  To summarize a
  230. complex process:
  231.  
  232.    VBLM Pro constructs a compact multi-language database
  233.    containing selected language tables.
  234.  
  235.    It adds two files to the project, a form for language
  236.    selection and a module with the RTString function.  This
  237.    function takes one argument (a string index) and rapidly
  238.    returns a string from the database.  The first time it is
  239.    called it also initializes the database, optimizing for speed
  240.    or memory (your choice) and using the form to prompt a
  241.    language choice if not specified on the command line.
  242.  
  243.    It modifies code extensively as it rewrites the project in
  244.    the target directory.  As it rewrites (continued)
  245.  
  246.  
  247.  
  248. forms, VBLM Pro eliminates translated property strings in the
  249. definition section, adds a SetProperties procedure which calls
  250. RTString for each translated property, and calls SetProperties
  251. from the load event.  In all files, it replaces embedded string
  252. literals with RTString calls.
  253.  
  254. VBLM Pro even handles translated string constants, which
  255. obviously can't be switched at runtime.  How?  It comments out
  256. the declarations, redeclares local constants as variables
  257. initialized with RTString, and replaces all references to form,
  258. module, and global constants with   you guessed it   calls to
  259. RTString.
  260.  
  261. The result is a multi-language VB app that, after a brief pause
  262. on startup, suffers almost no perceptible performance
  263. degradation, even if your app has thousands of translated strings
  264. and you choose to optimize the switching process for memory
  265. instead of speed.  When you see one run, we guarantee it: you'll
  266. be impressed!
  267.  
  268. Better yet, all runtime switching support is implemented in fully
  269. documented VB code that you can examine and modify however you
  270. see fit.  You can customize the language selection form, retrieve
  271. the language selection from an INI file, or do whatever you want.
  272.  
  273.  
  274. But enough complicated tech-talk, because if your Visual Basic
  275. applications need to speak more than one language, you've got a
  276. simple choice:
  277.  
  278.    Invest the time and resources to support multiple languages
  279.    in a programming environment that, frankly, wasn't designed
  280.    for it.  Then live with performance and maintenance
  281.    headaches.
  282.  
  283.    Use VB Language Manager and add multi-language support to any
  284.    VB app as quickly, easily, accurately, and efficiently as
  285.    possible.  With no headaches.
  286.  
  287. Shouldn't you try VB Language Manager?  To order, call 1-800-241-
  288. 8727.
  289.  
  290.  
  291.  
  292. About WhippleWare
  293.  
  294. In 1991, MIT student Ben Whipple used VB to write software for
  295. his doctoral research.  Ben was delighted with VB but frustrated
  296. by the time it took to make apps run efficiently.  He created
  297. VB CompressTM, the first and only VB optimization utility.
  298. VB Compress has so far received both Reader's and Editor's Choice
  299. Awards from the Visual Basic Programmer's JournalTM, has been
  300. recommended by speakers at VBITSTM and Tech-EdTM conferences, and
  301. is used daily by thousands of very satisfied customers.  With
  302. VB Language Manager, Ben now re-applies both his VB code-
  303. processing expertise and the  principles of doing business that
  304. made VB Compress a hit:
  305.  
  306.      Our customers are not only always right, they give us our
  307.      best ideas.  So when you call WhippleWare, you'll probably
  308.      talk to the guy who writes the code.  And he'll listen to
  309.      you.
  310.  
  311.      We maintain no inventory, continually test and improve our
  312.      products, and fix all problems when reported.  We don't ship
  313.      software with known bugs.  Our tech support line hardly ever
  314.      rings, and we want to keep it that way.
  315.  
  316.      We trust our customers and unconditionally guarantee their
  317.      satisfaction. None of this "unless you open the envelope" or
  318.      "if it doesn't do what we say it does" nonsense.  If you
  319.      aren't 100% satisfied for any reason at all, simply
  320.      uninstall and return the product within 30 days and we'll
  321.      refund everything except shipping and handling.  The only
  322.      question we'll ask: Why weren't you satisfied?
  323.  
  324.  
  325. WhippleWare
  326. 20 Cedar Street
  327. Charlestown MA 02129-2502
  328.  
  329. Orders: 800-241-8727
  330. Phone:  617 242 2511
  331. Fax:    617 241 8496
  332. CIS:    72321,362
  333.  
  334. Price (9/1/94)
  335. VB Language Manager Standard Edition: $100
  336. VB Language Manager Professional:     $150
  337.  
  338. S&H: $5 Priority Mail, International Air Mail
  339.      $10 USA FedEx
  340.      $25 Canada FedEx
  341.      $30-35 Europe, Japan FedEx
  342.      Other International FedEx: Ask for a quote
  343.